var cm_storage = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(), {
	header : '仓库名称',
	dataIndex : 'name'
},{
	header : '仓库地址',
	dataIndex : 'address'
}]);



var btn_add_storage = new Ext.Button({
	text : '增加仓库',
	iconCls : 'icon-add',
	handler : function() {
		window_add_storage.show();
	}
});

var btn_edit_storage = new Ext.Button({
	text : '修改仓库',
	iconCls : 'icon-edit',
	handler : function() {
		var record = grid_storage.getSelectionModel().getSelected();
		if (record) {	
			window_edit_storage.show();
		}else{
		
		   Ext.Msg.alert('提示','请选择要修改的仓库!');
		}
	}
});




var ds_storage = new Ext.data.Store({
	url : app.url+'/admin/storage/getStorageList.do',
	reader : new Ext.data.JsonReader({totalProperty : 'totalProperty',root : 'root'}, 
	[{name : 'id',mapping : 'id',type : 'int'}, 
	{name : 'name',mapping : 'name',type : 'string'},
	{name : 'address',mapping : 'address',type : 'string'}
	])
});

var grid_storage = new Ext.grid.GridPanel({
	title : '仓库管理',
	iconCls : 'icon-grid',
	loadMask : {msg : '数据加载中...'},
	height:400,
	autoWidth : true,
	region : 'center',
	cm : cm_storage,
	ds : ds_storage,
	sm : new Ext.grid.RowSelectionModel({singleSelect : true}),
	enableColumnMove : false,
	trackMouseOver : false,
	frame : true,
    columnLines :true,
    enableHdMenu : false,
	tbar : [btn_add_storage,'-',btn_edit_storage],
	bbar : new Ext.PagingToolbar({
		pageSize : 20,
		store : ds_storage,
		displayInfo : true,
		displayMsg : '第 {0} - {1} 条  共 {2} 条',
		emptyMsg : "没有记录"
	}),listeners : {
		'click' : function(){
			var record = this.getSelectionModel().getSelected();
			ds_storageSpace_data.baseParams.id = record.data.id; 
			ds_storageSpace_data.load({params : {start : 0,limit : 1000}});
		}
	}
});


var window_add_storage = new Ext.Window({
	title : '增加仓库',
	width : 320,
	resizable : false,
	autoHeight : true,
	modal : true,
	closeAction : 'hide',
	listeners : {
		'hide' : function() {
			this.findById('name').ownerCt.form.reset();
		}
	},
	items : [new Ext.FormPanel({
		border : false,
		baseCls : 'x-plain',
		bodyStyle : 'padding:5px 5px 0',
		labelAlign : 'right',
		labelWidth : 70,
		defaults : {anchor : '93%',msgTarget : 'side'},
		defaultType : 'textfield',
		items : [{ fieldLabel : '仓库名称',
			id : 'name',
			name : 'name',
			allowBlank : false,
			minLength : 5,
		 	maxLength : 32},
		 	{ fieldLabel : '仓库地址',
			id : 'address',
			name : 'address',
			allowBlank : false,
			minLength : 1,
		 	maxLength : 32}
		],
		buttonAlign : 'right',
		minButtonWidth : 60,
		buttons : [{
			text : '增加',
			handler : function(btn) {
				var frm = this.ownerCt.ownerCt.form;
				if (frm.isValid()) {
					btn.disable();
					frm.submit({
						waitTitle : '请稍候',
						url : app.url+'/admin/storage/save.do',
						waitMsg : '正在提交表单数据,请稍候...',
						success : function(form, action) {
							btn.enable();
							window_add_storage.hide();
							ds_storage.load({params : {start : 0,limit : 20}});
						},
						failure : function() {
							Ext.Msg.show({
								title : '错误提示',
								msg : '发生不明错误，请与管理员联系!',
								buttons : Ext.Msg.OK,
								fn : function() {
									btn.enable();
								},
								icon : Ext.Msg.ERROR
							});
						}
					});
				}
			}
		},{text : '取消',handler : function() {
			this.ownerCt.ownerCt.ownerCt.hide();
			ds_storage.load({params : {start : 0,limit : 20}});
		}
		}]
	})]
});

var window_edit_storage = new Ext.Window({
	title : '修改仓库',
	width : 320,
	resizable : false,
	autoHeight : true,
	modal : true,
	closeAction : 'hide',
	listeners : {
		'hide' : function() {
			this.findById('storage.id').ownerCt.form.reset();
		},
		'show' :function(){
			var record = grid_storage.getSelectionModel().getSelected();
			this.findById('storage.id').setValue(record.data.id);
			this.findById('storage.name').setValue(record.data.name);
			this.findById('storage.address').setValue(record.data.address);
		}
	},
	items : [new Ext.FormPanel({
		border : false,
		baseCls : 'x-plain',
		bodyStyle : 'padding:5px 5px 0',
		labelAlign : 'right',
		labelWidth : 70,
		defaults : {anchor : '93%',msgTarget : 'side'},
		defaultType : 'textfield',
		items : [{xtype : 'hidden',id:'storage.id',name : 'storage.id'},
			{ fieldLabel : '仓库名称',
			id : 'storage.name',
			name : 'storage.name',
			allowBlank : false,
			minLength : 5,
		 	maxLength : 32},
		 	{ fieldLabel : '仓库地址',
			id : 'storage.address',
			name : 'storage.address',
			allowBlank : false,
			minLength : 1,
		 	maxLength : 32}
		],
		buttonAlign : 'right',
		minButtonWidth : 60,
		buttons : [{
			text : '修改',
			handler : function(btn) {
				var frm = this.ownerCt.ownerCt.form;
				if (frm.isValid()) {
					btn.disable();
					frm.submit({
						waitTitle : '请稍候',
						url : app.url+'/admin/storage/update.do',
						waitMsg : '正在提交表单数据,请稍候...',
						success : function(form, action) {
							btn.enable();
							window_edit_storage.hide();
							ds_storage.load({params : {start : 0,limit : 20}});
						},
						failure : function() {
							Ext.Msg.show({
								title : '错误提示',
								msg : '发生不明错误，请与管理员联系!',
								buttons : Ext.Msg.OK,
								fn : function() {
									btn.enable();
								},
								icon : Ext.Msg.ERROR
							});
						}
					});
				}
			}
		},{text : '取消',handler : function() {
			this.ownerCt.ownerCt.ownerCt.hide();
			ds_storage.load({params : {start : 0,limit : 20}});
		}
		}]
	})]
});

var cm_storageSpace = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(), {
	header : '仓位',
	width : 120,
	dataIndex : 'name'
}]);


var grid_storageSpace_detail = new Ext.grid.EditorGridPanel({
	title : '仓位信息',
	iconCls : 'icon-grid',
	region: 'center',
	loadMask : {msg : '数据加载中...'},
	width:400,
	cm : cm_storageSpace,
	ds : ds_storageSpace_data,
	sm : new Ext.grid.RowSelectionModel({singleSelect : true}),
	enableColumnMove : false,
	trackMouseOver : false,
	frame : true,
	clicksToEdit : 1
});
    
var storageSpace_tabs=new Ext.TabPanel({
        activeTab:0,
        region: 'south',
        height:200,
        frame:true,
        items:[grid_storageSpace_detail]
 });

var p_storage = {
	id : 'storage-panel',
	border : false,
	layout : 'border',
	autoScroll:true,
	items : [grid_storage,storageSpace_tabs]
};